home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / OS2 / DBPROCS.ARJ / DBMANIP.H < prev    next >
Text File  |  1992-05-24  |  4KB  |  139 lines

  1. #define  MAXRECLNGTH    4000
  2. #define  MAXFIELDS        128
  3. #define  MAXFLDLNGTH    128
  4. #define  MAXNUMLNGTH    19
  5. #define  MAXDECLNGTH    15
  6. #define  MAXDB            30
  7. #define  READONLY        0
  8. #define  READWRITE        1
  9. #define  UNLOCK         0
  10. #define  LOCK            1
  11. #define  RECLNGTH        dbdata[curdb].reclngth
  12. #define  RECSTART        dbdata[curdb].hdrlngth
  13.  
  14.  
  15. #ifndef INCL_BASE  //if not using OS/2
  16.     typedef SHORT int
  17.     typedef USHORT unsigned int
  18.     typedef LONG long
  19.     typedef ULONG unsigned long
  20.     typedef VOID void
  21.     typedef EXPENTRY far pascal _loadds
  22.     typedef SEL unsigned int
  23.     typedef HFILE unsigned int
  24. #endif
  25.  
  26. typedef struct _dbheader
  27.     {
  28.     CHAR  version;
  29.     CHAR  updatey;
  30.     CHAR  updatem;
  31.     CHAR  updated;
  32.     LONG  maxrec;
  33.     SHORT hdrlngth;
  34.     SHORT reclngth;
  35.     CHAR  reserved[20];
  36.     }DBHEADER;
  37.  
  38. typedef struct _dbreport
  39.     {
  40.     CHAR  updatey;
  41.     CHAR  updatem;
  42.     CHAR  updated;
  43.     LONG  maxrec;
  44.     SHORT reclngth;
  45.     SHORT numflds ;
  46.     }DBREPORT;
  47.  
  48.  
  49. typedef struct _fldheader
  50.     {
  51.     CHAR name[11];
  52.     CHAR type;
  53.     CHAR reserved1[4];
  54.     CHAR length;
  55.     CHAR decimal;
  56.     CHAR reserved2[14];
  57.     }FLDHEADER;
  58.  
  59. typedef struct _fldinfo
  60.     {
  61.     CHAR name[11];
  62.     CHAR type;
  63.     CHAR length;
  64.     CHAR decimal;
  65.     }FLDDATA;
  66.  
  67.  
  68. typedef struct _dbinfo
  69.     {
  70.     CHAR  version;
  71.     CHAR  updatey;
  72.     CHAR  updatem;
  73.     CHAR  updated;
  74.     LONG  maxrec;
  75.     SHORT hdrlngth;
  76.     SHORT reclngth;
  77.     SEL   fieldinfo ;
  78.     }DBINFO;
  79.  
  80.  
  81. static HFILE    dbptr[MAXDB] ;
  82. static DBHEADER dbdata[MAXDB] ;
  83. static SHORT    openmode[MAXDB] ;
  84. static SHORT    fldcnt[MAXDB] ;
  85. static SHORT    curdb ;
  86. static SEL        fieldinfo[MAXDB] ;
  87.  
  88. /*
  89. function prototypes
  90. */
  91.  
  92. /*
  93.     Exported Functions
  94. */
  95. SHORT EXPENTRY AddRec     (SHORT dbhndl, CHAR *recdata, LONG *recnum, SHORT lockstatus) ;
  96. SHORT EXPENTRY PutRec     (SHORT dbhndl, CHAR *recdata, LONG recnum) ;
  97. SHORT EXPENTRY GetRec     (SHORT dbhndl, CHAR *recdata, LONG recnum) ;
  98. SHORT EXPENTRY DeleteRec (SHORT dbhndl, LONG recnum) ;
  99. SHORT EXPENTRY RecoverRec(SHORT dbhndl, LONG recnum) ;
  100. SHORT EXPENTRY CheckRec  (SHORT dbhndl, LONG recnum) ;
  101. SHORT EXPENTRY LockRec     (SHORT dbhndl, LONG recnum) ;
  102. SHORT EXPENTRY UnLockRec (SHORT dbhndl, LONG recnum) ;
  103. SHORT EXPENTRY DbCreate  (CHAR *file, SHORT fldcount, FLDDATA *info) ;
  104. SHORT EXPENTRY DbInfo     (SHORT hndl, DBREPORT *info) ;
  105. SHORT EXPENTRY DbOpen     (CHAR *file, SHORT readwrite) ;
  106. SHORT EXPENTRY DbClose     (SHORT dbhndl) ;
  107. SHORT EXPENTRY GetField  (SHORT dbhndl, LONG recnum, CHAR *buff, SHORT fieldnum) ;
  108. SHORT EXPENTRY PutField  (SHORT dbhndl, LONG recnum, CHAR *buff, SHORT fieldnum) ;
  109. SHORT EXPENTRY FldInfo     (SHORT hndl, SHORT fldnum, FLDDATA FAR *fldinfo) ;
  110.  
  111.  
  112. /*
  113.     Internal Functions
  114. */
  115. ULONG RecordSeek (LONG recnum) ;
  116. SHORT RecordWrite(CHAR *record, LONG recnum) ;
  117. SHORT RecordRead (CHAR *record, LONG recnum) ;
  118. SHORT UpdateDBheader(SHORT direction) ;
  119. SHORT RefressDBheader(VOID) ;
  120. SHORT FldName2Num(CHAR *name) ;
  121. SHORT FieldOffset(SHORT fldnum) ;
  122. SHORT FieldLength(SHORT fldnum) ;
  123. CHAR  *rtrim(CHAR *text) ;
  124. CHAR  *ltrim(CHAR *text) ;
  125. SHORT FieldType(SHORT fldnum) ;
  126. SHORT FieldDecimal(SHORT fldnum) ;
  127. SHORT FormatNumber(SHORT fldnum, CHAR *text) ;
  128. VOID  *MemAlloc(USHORT size) ;
  129. VOID  Free(VOID *ptr) ;
  130. SHORT Write(USHORT handle, VOID *data, USHORT length) ;
  131. SHORT Read (USHORT handle, VOID *data, USHORT length) ;
  132. SHORT Seek(LONG distance) ;
  133. SHORT FileSize(VOID) ;
  134. SHORT Lock(LONG offset, LONG range, BOOL action) ;
  135. SHORT GetDate(CHAR *day, CHAR *month, CHAR *year) ;
  136. VOID  Sleep(LONG time) ;
  137. SHORT Close (USHORT) ;
  138. SHORT Open(CHAR *name, USHORT *handle, USHORT attribute, USHORT mode) ;
  139.